﻿using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.UI.Common;


namespace Sinacor.UI.Bovespa.Operador.Model
{
    /// <summary>
    /// Model Preferencias
    /// Autor: Márcio Belarmino
    /// Data: 29/01/2009
    /// </summary>
    public class Preferencias : BaseModel
    {
        #region Campos
        private string _bolsa;
        private int _codigoOperador;
        private Model.Enum.TipoMercado? _mercado;
        private Model.Enum.TipoOrdem? _ordem;
        private bool _ordemModoInsert;
        private bool _ordenaDigitacaoDecrescente;
        private bool _populaLoteAutomaticamenteAposInsercao;
        private bool _populaLoteAutomaticamenteAposPreBoleto;
        private bool _utilizaDataPreBoleto;
        #endregion

        #region Propriedades
        /// <summary>
        /// Bolsa
        /// </summary>
        public string Bolsa
        {
            get
            {
                return _bolsa;
            }
            set
            {
                this.SetValue<string>("Bolsa", ref _bolsa, value);
            }
        }

        /// <summary>
        /// Código Operador
        /// </summary>
        public int CodigoOperador
        {
            get
            {
                return _codigoOperador;
            }
            set
            {
                this.SetValue<int>("CodigoOperador", ref _codigoOperador, value);
            }
        }

        /// <summary>
        /// Tipo Mercado
        /// </summary>
        public Model.Enum.TipoMercado? Mercado
        {
            get
            {
                return _mercado;
            }
            set
            {
                this.SetValue<Model.Enum.TipoMercado?>("Mercado", ref _mercado, value);
            }
        }

        public Model.Enum.TipoOrdem? Ordem
        {
            get
            {
                return _ordem;
            }
            set
            {
                this.SetValue<Model.Enum.TipoOrdem?>("Ordem", ref _ordem, value);
            }
        }

        /// <summary>
        /// Ordem em modo de insert
        /// </summary>
        public bool OrdemModoInsert
        {
            get
            {
                return _ordemModoInsert;
            }
            set
            {
                this.SetValue<bool>("OrdemModoInsert", ref _ordemModoInsert, value);
            }
        }

        /// <summary>
        /// Ordena Digitação de Ordens em Lote por Ordem Decrescente
        /// </summary>
        public bool OrdenaDigitacaoDecrescente
        {
            get
            {
                return _ordenaDigitacaoDecrescente;
            }
            set
            {
                this.SetValue<bool>("OrdenaDigitacaoDecrescente", ref _ordenaDigitacaoDecrescente, value);
            }
        }

        /// <summary>
        /// Popula Lote de Ordens Automaticamente após a Inserção
        /// </summary>
        public bool PopulaLoteAutomaticamenteAposInsercao
        {
            get
            {
                return _populaLoteAutomaticamenteAposInsercao;
            }
            set
            {
                this.SetValue<bool>("PopulaLoteAutomaticamenteAposInsercao", ref _populaLoteAutomaticamenteAposInsercao, value);
            }
        }

        /// <summary>
        /// Popula Lote de Ordens Automaticamente após o Pré Boleto
        /// </summary>
        public bool PopulaLoteAutomaticamenteAposPreBoleto
        {
            get
            {
                return _populaLoteAutomaticamenteAposPreBoleto;
            }
            set
            {
                this.SetValue<bool>("PopulaLoteAutomaticamenteAposPreBoleto", ref _populaLoteAutomaticamenteAposPreBoleto, value);
            }
        }

        /// <summary>
        /// Utiliza Data da Ordem para usar Pré Boleto
        /// </summary>
        public bool UtilizaDataPreBoleto
        {
            get
            {
                return _utilizaDataPreBoleto;
            }
            set
            {
                this.SetValue<bool>("UtilizaDataPreBoleto", ref _utilizaDataPreBoleto, value);
            }
        }
        #endregion
    }
}
